// @TODO refactor this file to include only exports
import filterAsync from './array/filter-async';
import first from './array/first';
import flatten from './array/flatten';
import sharedStartOfArray from './array/shared-start';
import splitBy from './array/split-by';
import bufferToReadStream from './buffer/to-read-stream';
import { buildCommandMessage } from './build-command-message';
import sha1 from './encryption/sha1';
import * as eol from './eol';
import filterObject from './filter-object';
import outputFile from './fs-output-file';
import outputJsonFile from './fs-output-json-sync';
import rmDir from './fs-rmdir';
import writeFile from './fs-write-file';
import { checksum, checksumFile } from './checksum';
import currentDirName from './fs/current-dir-name';
import createSymlinkOrCopy from './fs/create-symlink-or-copy';
import calculateFileInfo from './fs/file-info';
import getWithoutExt from './fs/fs-no-ext';
import getExt from './fs/get-ext';
import isDirEmpty from './fs/is-dir-empty';
import { pathHas, pathHasAll, propogateUntil } from './fs/propogate-until';
import readDirIgnoreDsStore, { readDirSyncIgnoreDsStore } from './fs/read-dir-ignore-ds-store';
import searchFilesIgnoreExt from './fs/search-files-ignore-ext';
import getMissingTestFiles from './getMissingTestFiles';
import glob from './glob';
import retrieveIgnoreList from './ignore/ignore';
import immutableUnshift from './immutable-unshift';
import isBitUrl from './is-bit-url';
import isDir from './is-dir';
import isDirEmptySync from './is-dir-empty-sync';
import isAutoGeneratedFile from './is-file-auto-generated';
import isRelativeImport from './is-relative-import';
import isValidPath from './is-valid-path';
import mapObject from './map-object';
import mapToObject from './map/to-object';
import isNumeric from './number/is-numeric';
import cleanObject from './object-clean';
import objectToStringifiedTupleArray from './object-to-stringified-tuple-array';
import empty from './object/empty';
import filter from './object/filter';
import forEach from './object/foreach';
import hasOwnProperty from './object/has-own-property';
import sortObject from './object/sort';
import resolveGroupId from './os-resolve-group-id';
import resolveHomePath from './os-resolve-home-path';
import { packCommand } from './pack-command';
import { pathJoinLinux, pathNormalizeToLinux, pathRelativeLinux, pathResolveToLinux } from './path';
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
import { pathIsInside } from './path-is-inside';
import prependBang from './prepend-bang';
import render from './pretty-json-chalk';
import toResultObject from './promise-to-result-object';
import Queue from './queue';
import removeFromRequireCache from './remove-from-require-cache';
import getLatestVersionNumber from './resolveLatestVersion';
import identityFile from './ssh/identity-file';
import parseSSHUrl from './ssh/parse-url';
import camelCase from './string/camel-case';
import cleanBang from './string/clean-bang';
import cleanChar from './string/clean-char';
import fromBase64 from './string/from-base64';
import generateRandomStr from './string/generate-random';
import getStringifyArgs from './string/get-stringify-args';
import isString from './string/is-string';
import removeChalkCharacters from './string/remove-chalk-characters';
import stripTrailingChar from './string/strip-trailing-char';
import toBase64 from './string/to-base64';
import toBase64ArrayBuffer from './string/to-base64-array-buffer';
import toBoolean from './to-boolean';
import { unpackCommand } from './unpack-command';
import deflate from './zlib-deflate';
import inflate from './zlib-inflate';

export {
  identityFile,
  parseSSHUrl,
  splitBy,
  sha1,
  objectToStringifiedTupleArray,
  resolveGroupId,
  mapToObject,
  rmDir,
  filterObject,
  sortObject,
  isString,
  removeChalkCharacters,
  getStringifyArgs,
  isNumeric,
  inflate,
  sharedStartOfArray,
  filterAsync,
  deflate,
  toBase64,
  toBase64ArrayBuffer,
  fromBase64,
  glob,
  empty,
  filter,
  cleanChar,
  checksum,
  checksumFile,
  writeFile,
  cleanObject,
  readDirIgnoreDsStore,
  readDirSyncIgnoreDsStore,
  createSymlinkOrCopy,
  cleanBang,
  prependBang,
  forEach,
  hasOwnProperty,
  isBitUrl,
  isDir,
  mapObject,
  resolveHomePath,
  propogateUntil,
  pathHas,
  pathHasAll,
  first,
  bufferToReadStream,
  isDirEmpty,
  isDirEmptySync,
  flatten,
  currentDirName,
  immutableUnshift,
  toResultObject,
  packCommand,
  unpackCommand,
  buildCommandMessage,
  removeFromRequireCache,
  outputFile,
  camelCase,
  stripTrailingChar,
  getLatestVersionNumber,
  calculateFileInfo,
  getWithoutExt,
  getExt,
  pathNormalizeToLinux,
  pathJoinLinux,
  pathRelativeLinux,
  pathResolveToLinux,
  outputJsonFile,
  searchFilesIgnoreExt,
  getMissingTestFiles,
  retrieveIgnoreList,
  pathIsInside,
  isValidPath,
  isAutoGeneratedFile,
  eol,
  generateRandomStr,
  render,
  Queue,
  toBoolean,
  isRelativeImport,
};
